ABC073 C - Write and Erase
提出
TLE
code: python
n = int(input())
joisino = []
for _ in range(n):
a = int(input())
if (a in joisino):
joisino.remove(a)
else:
joisino.append(a)
print(len(joisino))
解答
code: python
n = int(input())
joisino = set()
for _ in range(n):
a = int(input())
# ハッシュテーブルO(1)だからO(N^2)にならない...?
if (a not in joisino):
joisino.add(a)
else:
joisino.remove(a)
print(len(list(joisino)))
メモ
setを使ったら速くなった 2206 ms => 173 ms
読んでみる
Python では set() は「ハッシュテーブル」で実装されています。(今回調べて知りました…!)
つまり、実際の数値以外にインデックスが貼られた探索しやすい整数とのペアで値が入っています。
not inを先にしてもTLE
それはそう
code: python
n = int(input())
joisino = []
for _ in range(n):
a = int(input())
if (a not in joisino):
joisino.append(a)
else:
joisino.remove(a)
print(len(joisino))
提出
code: python
n = int(input())
paper = set()
for num in a:
if num in paper:
paper.remove(num)
else:
paper.add(num)
print(len(paper))